import { filterNullFields } from '@/utils/fomatter';
import httpService from '../httpService';

/**
 * 获取投资人合规风控信息
 * @returns
 */
function getRiskData() {
  return httpService.get(`/user/get/risk`)
}

/**
 * 提交投资者分类
 * @param investor_class  投资者分类 1 普通投资者 2 专业投资者 -1 未分类
 * @returns
 */
function submitInvestorClass(investor_class: number) {
  var params = { 'investor_class': investor_class };
  return httpService.post(`/user/submit/investor_class`, params)
}

/**
 * 提交合格投资者承诺
 * @returns
 */
function submitCligibleCommitment() {
  return httpService.post(`/user/submit/cligible_commitment`)
}

/**
 * 提交风险测评问卷
 * @param questionnaire_id
 * @param answer_value_str
 * @returns
 */
function submitRiskAssessment(questionnaire_id: string, answer_value_str: string) {
  var params = { 'answer_value_str': answer_value_str, 'questionnaire_id': questionnaire_id }
  return httpService.post(`/user/submit/risk_assessment`, params)
}


/**
 * 提交风险测评问卷-不更新用户信息 (审核通过之后 切换这个接口)
 * @param questionnaire_id
 * @param answer_value_str
 * @returns
 */
function submitRiskAnswer(questionnaire_id: string, answer_value_str: string) {
  var params = { 'answer_value_str': answer_value_str, 'questionnaire_id': questionnaire_id }
  return httpService.post(`/compli/submit/risk_answer`, params)
}




/**
 * 获取风险测评结果
 * @returns
 */
function getRiskAssessment() {
  return httpService.get(`/user/get/risk_assessment`)
}



/**
 * 提交风险等级变更审核 (此时合格投资者已经完成)
 * @param answer_id
 * @returns
 */
function submitRiskApproval(answer_id: string) {
  var params = { 'answer_id': answer_id, }
  return httpService.post(`/user/submit/risk_approval`, params)
}



/**
 * 提交个人用户其他信息
 * @param contact_addr 联系地址
 * @param profession 职业
 * @param duties 职务
 * @param fixed_telephone 固定电话
 * @param zip_code 邮编
 * @param email_address 邮箱
 * @returns
 */
function submitPersonalOtherInfo({ contact_addr, profession, duties, fixed_telephone, zip_code, email_address }) {
  var params = {
    'contact_addr': contact_addr,
    'profession': profession,
    'duties': duties,
    'fixed_telephone': fixed_telephone,
    'zip_code': zip_code,
    'email_address': email_address,
  };
  //  const filteredParams = filterNullFields(params);
  return httpService.post(`/user/submit/personal_other_info`, params)
}


/**
 * 上传证明材料
 * @param asset_value_str 资产证明附件json格式串，key为fileId,value为文件名
 * @param other_value_str 其他附件json格式串，key为fileId,value为文件名
 * @param front_id 证件附件正面ID,
 * @param front_name 证件附件正面文件名,
 * @param back_id 证件附件反面ID,
 * @param back_name 证件附件反面文件名,
 * @returns
 */
function submitEvidence(asset_value_str, other_value_str, front_id, front_name, back_id, back_name) {
  var params = {
    'asset_value_str': asset_value_str,
    'other_value_str': other_value_str,
    "front_id": front_id,
    "front_name": front_name,
    "back_id": back_id,
    "back_name": back_name,
  }

  return httpService.post(`/user/submit/evidence`, params)
}

/**
 * 提交合格投资者审核
 * @returns
 */
function submitEligibleApproval() {
  return httpService.post(`/user/submit/eligible_approval`)
}

/**
 * 提交投资者分类 -- 个人
 * @param investor_class  投资者分类 1 普通投资者 2 专业投资者 -1 未分类
 * @returns
 */
function setWalletInvestorClass(investor_class: number) {
  var params = { 'investor_class': investor_class }
  return httpService.post(`/wallet/set/investor_class`, params)
}


/**
 * 提交个人用户其他信息 -- 个人
 * @param contact_addr 联系地址
 * @param profession 职业
 * @param duties 职务
 * @param fixed_telephone 固定电话
 * @param zip_code 邮编
 * @param email_address 邮箱
 * @returns
 */
function setWalletPersonalOtherInfo({ contact_addr, profession, duties, fixed_telephone, zip_code, email_address }) {
  var params = {
    'contact_addr': contact_addr,
    'profession': profession,
    'duties': duties,
    'fixed_telephone': fixed_telephone,
    'zip_code': zip_code,
    'email_address': email_address,
  };
  // const filteredParams = filterNullFields(params);
  return httpService.post(`/wallet/set/personal_other_info`, params)
}


/**
 * 上传证明材料 --  个人
 * @param asset_value_str 资产证明附件json格式串，key为fileId,value为文件名
 * @param other_value_str 其他附件json格式串，key为fileId,value为文件名
 * @param front_id 证件附件正面ID,
 * @param front_name 证件附件正面文件名,
 * @param back_id 证件附件反面ID,
 * @param back_name 证件附件反面文件名,
 * @returns
 */
function setWalletEvidence(asset_value_str?, other_value_str?, front_id?, front_name?, back_id?, back_name?) {
  var params = {
    'asset_value_str': asset_value_str,
    'other_value_str': other_value_str,
    "front_id": front_id,
    "front_name": front_name,
    "back_id": back_id,
    "back_name": back_name,
  };
  const filteredParams = filterNullFields(params);
  return httpService.post(`/wallet/set/evidence`, filteredParams)
}


/**
 * 获取个人投资者合规投资者认证信息
 * @returns
 */
function getWalletEligibleInvest() {
  return httpService.get(`/wallet/get/personal/eligible_invest`)
}


/**
 * 同步个人投资者合规投资者认证信息
 * @returns
 */
function syncWalletElilgibleInvest() {
  return httpService.post(`/wallet/sync/personal/elilgible_invest`)
}


/**
 * 校验当前客户的道以盾是否绑定了合规投资者认证信息V2
 * @returns
 */
function checkWalletBindEligibleInvest() {
  return httpService.get(`/wallet/check/bind_eligible_invest_v2`)
}




export {
  getRiskData,
  submitInvestorClass,
  submitCligibleCommitment,
  submitRiskAssessment,
  getRiskAssessment,
  submitPersonalOtherInfo,
  submitEvidence,
  submitEligibleApproval,
  setWalletInvestorClass,
  setWalletPersonalOtherInfo,
  setWalletEvidence,
  getWalletEligibleInvest,
  checkWalletBindEligibleInvest,
  syncWalletElilgibleInvest,
  submitRiskAnswer,
  submitRiskApproval,
}
